home *** CD-ROM | disk | FTP | other *** search
- *****************************************************************************
- * *
- * Filled Line Intro *
- * *
- * Start Date : 1/3/91 *
- * Last Update : 1/3/91 *
- * Code : Melt Down *
- * *
- *****************************************************************************
-
- ; Include the macros
-
- Incdir Df1:
- Include Source/Macro
-
- *****************************************************************************
-
- ; Dont forget to use chip ram
-
- Chip
-
- *****************************************************************************
-
- ; Kill the operating system for good mesure
-
- Kill
-
- *****************************************************************************
-
- ; Load custom and set up copper list
-
- Lea Custom,A5
- Move.l #Copper,Cop1lch(a5)
-
- *****************************************************************************
-
- ; Clear Some Memory
-
- Blitwait
- Move.l #$70000,Bltdpth(a5)
- Move.l #-1,Bltafwm(a5)
- Move.w #0,Bltdmod(a5)
- Move.l #$01000000,Bltcon0(a5)
- Move.w #256*64+60,Bltsize(a5)
-
- *****************************************************************************
-
- ; Main routine here
-
- Mouse
- Move.l $dff004,d2
- And.l #$1ff00,d2
- Cmp.l #$100,d2
- Bne.s Mouse
-
- Move.w #$f0f,$dff180
- Eor.l #$4000,Bit1
- Eor.l #$4000,Bit2
- Eor.l #$4000,ScreenPtr
-
- Bsr Clear
- Bsr UpDateAll
- Bsr Conect
- Move.w #$000,$dff180
- Tstmice Mouse ; Pressed the mouse
-
- *****************************************************************************
-
- ; Return operating system and go back to user
-
- Heal
- Clr.l D0 ; No error
- Rts
-
- *****************************************************************************
-
- Clear
- Blitwait ; Blitter Nasty But Why Do
- Move.l #$01000000,Bltcon0(a5) ; Clear
- Move.w #$0000,Bltdmod(a5) ; Skip No Bytes
- Move.l ScreenPtr,A1
- Move.l a1,Bltdpth(A5) ; Set Dest
- Move.l #-1,Bltafwm(a5) ; Use All Bits
- Move.w #100*64+20,Bltsize(a5) ; Fill Half Screen
- Movem.l a0-a6/d0-d7,-(a7) ; Save The Regs
- Movem.l RegFiller(pc),a1-a6/d0-d7 ; Clear The Regs
- Move.l ScreenPtr,A0
- Add.l #8000,A0
-
- ; 4000/56 = 71.14 Rnd Up = 72
- Rept 72 ; Rept it 58 times
- Movem.l a1-a6/d0-d7,-(a0) ; Clear 56 Butes
- Endr ; End repeat
- Movem.l (a7)+,a0-a6/d0-d7 ; Restor Regs
- Rts
- RegFiller
- Dcb.l 16,0
- Rts
-
- *****************************************************************************
-
- Conect
- Move.w #40,$60(a5) ; Screen In Bytes
- Move.l #-$8000,$72(a5) ; Set to line ??????
- Move.l #-1,$44(a5) ; The Mask
- Move.l ScreenPtr,A0
- Move.l #40,D5
- Lea XSin,A1
- Lea YSin,A2
- Lea Form1+2,a3
- Lea Form1Con,A4
- Move.w (a4)+,d7
- DoLines
- Move.w (a4)+,d6 ; Get Offset
- Move.w (a3,d6),d0 ; Get X
- Move.w 2(a3,d6),d1 ; Get Y
- Move.w 4(a3,d6),d2 ; Get X1
- Move.w 6(a3,d6),d3 ; Get Y1
- Move.w (a1,d0),d0 ; Get X Val
- Move.w (a2,d1),d1 ; Get Y Val
- Add.w (a1,d2),d0 ; Add X Val
- Add.w (a2,d3),d1 ; Add Y Val
- Movem.l d0/d1,-(A7)
- Move.w (a4)+,d6
- Move.w (a3,d6),d0
- Move.w 2(a3,d6),d1
- Move.w 4(a3,d6),d2
- Move.w 6(a3,d6),d3
- Move.w (a1,d0),d0
- Move.w (a2,d1),d1
- Add.w (a1,d2),d0
- Add.w (a2,d3),d1
- Movem.l (a7)+,d2/d3
- Movem.l a0/d5,-(a7)
- cmp.w d1,d3
- bgt.s line1
- exg d0,d2
- exg d1,d3
- beq.s out
- line1: move.w d1,d4
- muls d5,d4
- move.w d0,d5
- add.l a0,d4
- asr.w #3,d5
- add.w d5,d4
- moveq #0,d5
- sub.w d1,d3
- sub.w d0,d2
- bpl.s line2
- moveq #1,d5
- neg.w d2
- line2: move.w d3,d1
- add.w d1,d1
- cmp.w d2,d1
- dbhi d3,line3
- line3: move.w d3,d1
- sub.w d2,d1
- bpl.s line4
- exg d2,d3
- line4: addx.w d5,d5
- add.w d2,d2
- move.w d2,d1
- sub.w d3,d2
- addx.w d5,d5
- and.w #15,d0
- ror.w #4,d0
- or.w #$a4a,d0
- waitblt:btst #6,2(a5)
- bne.s waitblt
- move.w d2,$52(a5)
- sub.w d3,d2
- lsl.w #6,d3
- addq.w #2,d3
- move.w d0,$40(a5)
- move.b oct(PC,d5.w),$43(a5)
- move.l d4,$48(a5)
- move.l d4,$54(a5)
- movem.w d1/d2,$62(a5)
- move.w d3,$58(a5)
- out:
- Movem.l (A7)+,a0/d5
- Dbf D7,Dolines
- Blitwait
- Add.l #10240-2,A0 ; Plane Size -2
- Move.l #$09f0000a,Bltcon0(a5) ; D=A Desending And Fill
- Move.l #$ffffffff,bltafwm(a5) ; Use All Bits And Why Not
- Move.l a0,bltapth(a5) ; Set Ketchup
- Move.l a0,bltdpth(a5) ; Set THE IN PLACE
- Move.w #0,Bltamod(a5) ; Dont Skip
- Move.w #0,Bltdmod(a5) ; To My Loop
- Move.w #255*64+20,bltsize(a5) ; Do The Full Screen
- Rts
-
- *****************************************************************************
-
- oct: dc.l $3431353,$b4b1757
- ScreenPtr
- Dc.l $70000
-
- *****************************************************************************
-
- UpDateAll
- Lea Form1,A0
- Move.w (A0)+,d7 ; Number Of Points On Lines
- Move.l #$01fe01fe,D0
- Move.w #16,d2
- Update
- Move.l 8(A0),d1
- Add.l d1,(A0)
- Move.l 12(A0),d1
- Add.l d1,4(A0)
- And.l D0,(A0)
- And.l D0,4(A0)
- Lea (a0,d2),a0
- Dbf D7,UpDate
- Rts
-
- *****************************************************************************
-
- ; All copper list after here
-
- Copper
-
- Spr_Off ; Switch sprites off
- Cmove $2c71,Diwstrt
- Cmove $2cc1,Diwstop
- Cmove $0038,Ddfstrt
- Cmove $00d0,Ddfstop
- Cmove $0000,Bpl1mod
- Cmove -80,Bpl2mod
- ; Cmove $0000,Color00
- Cmove $0fff,Color01
- Cmove $0fff,Color02
- Cmove $0000,Color03
- Bit1
- Cmove $0000,Bpl1ptl
- Cmove $0007,Bpl1pth
- Bit2
- Cmove $2800,Bpl2ptl
- Cmove $0007,Bpl2pth
- Cmove $2200,Bplcon0
- Endcop
-
- *****************************************************************************
-
- Posa Macro
- Dc.w \1*2&$1fe,\2*2&$1fe,\3*2&$1fe,\4*2&$1fe,\5*2,\6*2,\7*2,\8*2
- Endm
- Form1
- Include Filled-Lines/Forms/Form1
-
- *****************************************************************************
-
- Conect Macro
- Dc.w (\1*16),(\2*16)
- Endm
- Form1Con
- Include Filled-Lines/Forms/Form1a
-
- *****************************************************************************
-
- ; X Sine Table
-
- XSin
- Rept 2
- dc.w 159,159,159,159,159,158,158,158
- dc.w 157,157,157,156,156,155,154,154
- dc.w 153,152,151,151,150,149,148,147
- dc.w 146,144,143,142,141,140,138,137
- dc.w 136,134,133,131,130,128,127,125
- dc.w 124,122,120,119,117,115,113,112
- dc.w 110,108,106,104,103,101,99,97
- dc.w 95,93,91,89,87,85,83,81
- dc.w 80,78,76,74,72,70,68,66
- dc.w 64,62,60,58,56,55,53,51
- dc.w 49,47,46,44,42,40,39,37
- dc.w 35,34,32,31,29,28,26,25
- dc.w 23,22,21,19,18,17,16,15
- dc.w 13,12,11,10,9,8,8,7
- dc.w 6,5,5,4,3,3,2,2
- dc.w 2,1,1,1,0,0,0,0
- dc.w 0,0,0,0,0,1,1,1
- dc.w 2,2,2,3,3,4,5,5
- dc.w 6,7,8,8,9,10,11,12
- dc.w 13,15,16,17,18,19,21,22
- dc.w 23,25,26,28,29,31,32,34
- dc.w 35,37,39,40,42,44,46,47
- dc.w 49,51,53,55,56,58,60,62
- dc.w 64,66,68,70,72,74,76,78
- dc.w 80,81,83,85,87,89,91,93
- dc.w 95,97,99,101,103,104,106,108
- dc.w 110,112,113,115,117,119,120,122
- dc.w 124,125,127,128,130,131,133,134
- dc.w 136,137,138,140,141,142,143,144
- dc.w 146,147,148,149,150,151,151,152
- dc.w 153,154,154,155,156,156,157,157
- dc.w 157,158,158,158,159,159,159,159
- Endr
-
- *****************************************************************************
-
- ; Y Sine Table
-
- YSin
- Rept 2
- dc.w 99,99,99,99,99,99,98,98
- dc.w 98,98,98,97,97,97,96,96
- dc.w 95,95,94,94,93,93,92,91
- dc.w 91,90,89,89,88,87,86,85
- dc.w 85,84,83,82,81,80,79,78
- dc.w 77,76,75,74,73,72,71,70
- dc.w 68,67,66,65,64,63,62,60
- dc.w 59,58,57,56,54,53,52,51
- dc.w 50,48,47,46,45,43,42,41
- dc.w 40,39,37,36,35,34,33,32
- dc.w 31,29,28,27,26,25,24,23
- dc.w 22,21,20,19,18,17,16,15
- dc.w 14,14,13,12,11,10,10,9
- dc.w 8,8,7,6,6,5,5,4
- dc.w 4,3,3,2,2,2,1,1
- dc.w 1,1,1,0,0,0,0,0
- dc.w 0,0,0,0,0,0,1,1
- dc.w 1,1,1,2,2,2,3,3
- dc.w 4,4,5,5,6,6,7,8
- dc.w 8,9,10,10,11,12,13,14
- dc.w 14,15,16,17,18,19,20,21
- dc.w 22,23,24,25,26,27,28,29
- dc.w 31,32,33,34,35,36,37,39
- dc.w 40,41,42,43,45,46,47,48
- dc.w 50,51,52,53,54,56,57,58
- dc.w 59,60,62,63,64,65,66,67
- dc.w 68,70,71,72,73,74,75,76
- dc.w 77,78,79,80,81,82,83,84
- dc.w 85,85,86,87,88,89,89,90
- dc.w 91,91,92,93,93,94,94,95
- dc.w 95,96,96,97,97,97,98,98
- dc.w 98,98,98,99,99,99,99,99
- Endr
-
- *****************************************************************************
-
-